home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / STUTTGART / GAMES / WALKER2 / !Walker2 / INTRO / WIntro < prev   
Text File  |  1995-02-14  |  6KB  |  494 lines

  1. ;************************
  2. ;* WALKER II            *
  3. ;* By Nicholas Kingsley *
  4. ;************************
  5.  
  6. ALIGN
  7.  
  8. #type &0
  9. #base &20000
  10. #exec &20000
  11. #load &20000
  12. #name Intro
  13.  
  14. ; Variables
  15. #set SpriteSize=65536   ; Sprite buffer size
  16. #set LongDelay=&100    ; Delay between fade up & fade down
  17. #set yp=15              ; Text Y Pos
  18.  
  19.  
  20. ALIGN
  21. B Walker_Intro
  22.  
  23. ; The intro sequence
  24.  
  25. ALIGN
  26. .Walker_Intro 
  27. STMFD R13!,{R0-R12,R14}
  28.  
  29. ADR R0,set_mode
  30. MOV R1,#2
  31. SWI OS_WriteN
  32.  
  33. SWI OS_RemoveCursors   ; Switch of cursor
  34.  
  35. ; Prepare sprite area
  36.  
  37. MOV R0,#9+256
  38. ADR R1,spritearea
  39. SWI OS_SpriteOp
  40.  
  41. ; Load sprites
  42.  
  43. MOV R0,#10+256
  44. ADR R1,spritearea
  45. ADR R2,filename
  46. SWI OS_SpriteOp
  47.  
  48. ; * FADE 1 *
  49.  
  50. BL fade1
  51. MOV R4,#1                     ; Fade Up
  52. BL FadeUpDown
  53. BL LDelay
  54. MOV R4,#0                     ; Fade Down
  55. BL FadeUpDown
  56.  
  57. ; * FADE 2 *
  58.  
  59. BL fade2
  60. MOV R4,#1                     ; Fade Up
  61. BL FadeUpDown
  62. BL LDelay
  63. MOV R4,#0                     ; Fade Down
  64. BL FadeUpDown
  65.  
  66. ; * FADE 3 *
  67.  
  68. BL fade3
  69. MOV R4,#1                     ; Fade Up
  70. BL FadeUpDown
  71. BL LDelay
  72. MOV R4,#0                     ; Fade Down
  73. BL FadeUpDown
  74.  
  75. ;* FADE 4 *
  76.  
  77. BL fade4
  78. MOV R4,#1                     ; Fade Up
  79. BL FadeUpDown
  80. BL LDelay
  81. MOV R4,#0                     ; Fade Down
  82. BL FadeUpDown
  83.  
  84. ;*****************
  85. ;* TITLE SPRITES *
  86. ;*****************
  87.  
  88. ;Store WALKER sprites X & Y values
  89.  
  90. MOV R0,#0
  91. MOV R1,#960
  92. STR R0,sx
  93. STR R1,sy
  94.  
  95. .loop1
  96. MOV R0,#34+256
  97. ADR R1,spritearea
  98. ADR R2,spritename1
  99. LDR R3,sx
  100. LDR R4,sy
  101. MOV R5,#0
  102. SWI OS_SpriteOp
  103.  
  104. MOV R0,#19
  105. SWI OS_Byte
  106.  
  107. SUB R4,R4,#4
  108. STR R4,sy
  109. CMP R4,#648-128-8
  110. BNE loop1
  111.  
  112. ; * Now for the I's
  113.  
  114. MOV R0,#0-64
  115. MOV R1,#1024
  116. STR R0,sx
  117. STR R1,sy
  118.  
  119. .loop3    
  120. MOV R0,#34+256
  121. ADR R1,spritearea
  122. ADR R2,spritename2
  123. LDR R3,sx
  124. MOV R4,#0
  125. MOV R5,#0
  126. SWI OS_SpriteOp
  127.  
  128. MOV R0,#34+256
  129. ADR R1,spritearea
  130. ADR R2,spritename2
  131. LDR R3,sy
  132. MOV R4,#0
  133. MOV R5,#0
  134. SWI OS_SpriteOp
  135.  
  136. LDR R0,sx
  137. LDR R1,sy
  138. ADD R0,R0,#4
  139. SUB R1,R1,#4
  140. STR R0,sx   
  141. STR R1,sy
  142.  
  143. CMP R0,#348+16
  144. BNE loop3
  145.  
  146. MOV R0,#1
  147. MOV R1,#&FFF1
  148. MOV R2,#10240
  149. MOV R3,#100
  150. SWI Sound_Control
  151.  
  152. BL LDelay
  153.  
  154. ; Clear screen !
  155.  
  156. MOV R0,#12
  157. SWI OS_WriteC
  158.  
  159. BL fade5
  160. MOV R4,#1                     ; Fade Up
  161. BL FadeUpDown
  162. BL LDelay
  163. MOV R4,#0                     ; Fade Down
  164. BL FadeUpDown
  165.  
  166. LDMFD R13!,{R0-R12,R15}
  167.  
  168. ;************
  169. ;* FADE ADR *
  170. ;************
  171.  
  172. ALIGN
  173. .fade1
  174. STMFD R13!,{R14}
  175. ADR R0,intro1
  176. ADR R7,introd1
  177.  
  178. LDR R3,[R7,#0]
  179. LDR R1,[R7,#1]
  180. LDR R2,[R7,#2]
  181. LDMFD R13!,{R15}
  182.  
  183. .fade2
  184. STMFD R13!,{R14}
  185. ADR R0,intro2
  186. ADR R7,introd2
  187.  
  188. LDR R3,[R7,#0]
  189. LDR R1,[R7,#1]
  190. LDR R2,[R7,#2]
  191. LDMFD R13!,{R15}
  192.  
  193. .fade3
  194. STMFD R13!,{R14}
  195. ADR R0,intro3
  196. ADR R7,introd3
  197.  
  198. LDR R3,[R7,#0]
  199. LDR R1,[R7,#1]
  200. LDR R2,[R7,#2]
  201. LDMFD R13!,{R15}
  202.  
  203. .fade4
  204. STMFD R13!,{R14}
  205. ADR R0,intro4
  206. ADR R7,introd4
  207.  
  208. LDR R3,[R7,#0]
  209. LDR R1,[R7,#1]
  210. LDR R2,[R7,#2] 
  211. LDMFD R13!,{R15}
  212.  
  213. .fade5
  214. STMFD R13!,{R14}
  215. ADR R0,intro5
  216. ADR R7,introd5
  217.  
  218. LDR R3,[R7,#0]
  219. LDR R1,[R7,#1]
  220. LDR R2,[R7,#2] 
  221. LDMFD R13!,{R15}
  222.  
  223. ;**************
  224. ;* LONG DELAY *
  225. ;**************
  226.  
  227. ;R0 - VSync
  228. ;R1 - Delay counter
  229.  
  230. ; All registers preserved
  231.  
  232. ALIGN
  233. .LDelay
  234. STMFD R13!,{R0-R12,R14}
  235. MOV R3,#LongDelay
  236. ._loop
  237. MOV R0,#19
  238. SWI OS_Byte
  239. SUBS R3,R3,#1
  240. BPL _loop
  241. LDMFD R13!,{R0-R12,R15}
  242.  
  243. ;****************
  244. ;* FADE UP/DOWN *
  245. ;****************
  246.  
  247. ;R0 - Address of text
  248. ;R1 - X Pos
  249. ;R2 - Y Pos
  250. ;R3 - Length
  251. ;R4 - 0 = Fade down, 1 = Fade up
  252.  
  253. ; All registers preserved
  254.  
  255. .FadeUpDown
  256. STMFD R13!,{R0-R12,R14}
  257. STR R0,texttemp
  258.  
  259. STRB R1,fx
  260. STRB R2,fy
  261. STRB R3,length
  262.  
  263. ADR R0,colourdata
  264. ADD R0,R0,#2
  265. STR R0,temp
  266.  
  267. CMP R4,#0
  268. BEQ fadedown
  269.  
  270. .fadeup
  271. BL MoveCursor
  272.  
  273. LDR R0,temp
  274. LDRB R1,[R0,#0]
  275. CMP R1,#255
  276. BEQ finish
  277.  
  278. BL SetColour
  279. BL SetTint
  280. BL DisplayText
  281.  
  282. LDR R0,temp
  283. ADD R0,R0,#2
  284. STR R0,temp
  285. B fadeup
  286.           
  287. .finish
  288. LDMFD R13!,{R0-R12,R15}
  289.  
  290. .fadedown
  291. LDR R0,temp
  292. ADD R0,R0,#14
  293. STR R0,temp
  294.  
  295. .loop2
  296. BL MoveCursor
  297.  
  298. LDR R0,temp
  299. LDRB R1,[R0,#0]
  300. CMP R1,#255
  301. BEQ finish
  302.  
  303. BL SetColour
  304. BL SetTint
  305. BL DisplayText
  306.  
  307. LDR R0,temp
  308. SUB R0,R0,#2
  309. STR R0,temp
  310. B loop2
  311.  
  312. .MoveCursor
  313. ADR R0,cursor
  314. MOV R1,#3
  315. SWI OS_WriteN
  316. MOV R15,R14
  317.  
  318. .SetColour
  319. STRB R1,col
  320. ADR R0,setcolour
  321. MOV R1,#2
  322. SWI OS_WriteN
  323. MOV R15,R14
  324.  
  325. .SetTint
  326. LDR R0,temp
  327. LDRB R1,[R0,#1]
  328. STRB R1,colour2
  329.  
  330. ADR R0,tint
  331. MOV R1,#10
  332. SWI OS_WriteN
  333. MOV R15,R14
  334.  
  335. .DisplayText
  336. LDR R0,texttemp
  337. LDRB R1,length
  338. SWI OS_WriteN
  339.  
  340. MOV R0,#19
  341. SWI OS_Byte
  342. MOV R0,#19
  343. SWI OS_Byte
  344. MOV R0,#19
  345. SWI OS_Byte
  346. MOV R15,R14
  347.  
  348. ;********
  349. ;* DATA *
  350. ;********
  351.  
  352. ALIGN
  353. .colourdata             ; Fade colour data
  354. DCB $FF,$FF
  355. DCB 0,0
  356. DCB 0,64
  357. DCB 0,128
  358. DCB 0,192
  359. DCB 21,0
  360. DCB 21,64
  361. DCB 21,128
  362. DCB 21,192
  363. DCB 42,0
  364. DCB 42,64
  365. DCB 42,128
  366. DCB 42,192
  367. DCB 63,0
  368. DCB 63,64
  369. DCB 63,128
  370. DCB 63,192
  371. DCB $FF,$FF
  372.  
  373. ALIGN
  374. .set_mode
  375. DCB 22,13,0             ; Set mode 13
  376.        
  377. ALIGN
  378. .cursor                 ; Position cursor
  379. DCB 31
  380. .fx
  381. DCB 0
  382. .fy
  383. DCB 0
  384.  
  385. ALIGN                  ; Set text colour 
  386. .setcolour
  387. DCB 17
  388. .col
  389. DCB 0
  390.  
  391. ALIGN
  392. .tint                 ; Set text tint
  393. DCB 23,17,0
  394. .colour2
  395. DCB 0,0,0,0,0,0,0
  396.    
  397. ALIGN
  398. .length               ; Length of text
  399. DCB 0
  400.   
  401. ALIGN
  402. .temp               
  403. DCD 0
  404.  
  405. ALIGN
  406. .texttemp
  407. DCD 0
  408.  
  409. ;**************
  410. ;* INTRO TEXT *
  411. ;**************                   
  412.  
  413. ALIGN
  414. .intro1
  415. DCB "Nicholas Kingsley Presents :"
  416.  
  417. ALIGN
  418. .intro2
  419. DCB "A Nicholas Kingsley Production"
  420.  
  421. ALIGN
  422. .intro3
  423. DCB "Starring :"
  424.  
  425. ALIGN
  426. .intro4
  427. DCB "You and a friend in"
  428.  
  429. ALIGN
  430. .intro5
  431. DCB "The Revenge Of OFUD"
  432.  
  433. ;****************************
  434. ;* INTRO LENGTHS, X + Y POS *
  435. ;****************************
  436.  
  437. ALIGN
  438. .introd1 
  439. DCB 26,6,yp
  440.         
  441. ALIGN
  442. .introd2
  443. DCB 30,4,yp
  444.  
  445. ALIGN
  446. .introd3
  447. DCB 10,14,yp
  448.      
  449. ALIGN
  450. .introd4
  451. DCB 19,10,yp
  452.  
  453. ALIGN
  454. .introd5
  455. DCB 19,10,yp
  456.  
  457. ;*******************
  458. ;* SPRITE FILENAME *
  459. ;*******************
  460.             
  461. ALIGN
  462. .filename
  463. DCB "<Walker2$Dir>.INTRO.W2_INTRO",0
  464.  
  465. ;********************
  466. ;* SPRITE POSITIONS *
  467. ;********************
  468.  
  469. ALIGN
  470. .sx
  471. DCD 0                   ; X
  472. ALIGN 
  473. .sy 
  474. DCD 0                   ; Y/X2
  475.  
  476. ;****************
  477. ;* SPRITE NAMES *
  478. ;****************
  479.  
  480. ALIGN
  481. .spritename1
  482. DCB "walker",0
  483.  
  484. ALIGN
  485. .spritename2
  486. DCB "i",0
  487.  
  488. ;***************
  489. ;* SPRITE AREA *
  490. ;***************
  491.  
  492. ALIGN
  493. .spritearea
  494. DBB SpriteSize,0       ; Sprites are place here